//package cn.com.zetatech.loader.resolver.service;
//
//import cn.com.zetatech.loader.entity.FileResolveLog;
//import cn.com.zetatech.loader.entity.ParquetMessage;
//import cn.com.zetatech.loader.util.RegexUtil;
//import cn.hutool.core.collection.CollectionUtil;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.stereotype.Component;
//
//import java.util.Map;
//
///**
// * @author jian.chen@zetatech.com.cn
// * @Description
// * 抽象类，用于解析 Parquet 文件并处理解析后的消息。
// * 具体的处理逻辑由子类实现。
// * @Date 2024/8/14 16:20
// */
//@Slf4j
//@Component
//public abstract class ResolverParquetFunction {
//
//    /**
//     * 处理 ParquetMessage 对象，包括提取文件信息并调用具体处理方法。
//     *
//     * @param message 包含待处理文件信息的 ParquetMessage 对象
//     * @throws Exception 如果处理过程中发生异常
//     */
//    public void process(ParquetMessage message) throws Exception {
//        Map<String, String> files = message.getFiles();
//        if (CollectionUtil.isEmpty(message.getFiles())) {
//            log.info("没有要处理的文件");
//            return;
//        }
//        for (String value : files.values()) {
//            String afterDbResult = RegexUtil.extractAfterNas(value);
//            String prefixBeforeNas = RegexUtil.extractPrefixBeforeNas(value);
//            if (afterDbResult != null) {
//                message.setGenre(afterDbResult);
//                message.setActuatorName(prefixBeforeNas);
////                 调用子类实现的处理方法
////                handle(message);
//            }else {
//                log.info("未匹配到文件类型: {}", value);
//            }
//        }
//
//    }{
//
//
//    }
//
//    /**
//     * 处理解析后的 ParquetMessage 对象。由子类实现具体逻辑。
//     *
//     * @param message 包含处理信息的 ParquetMessage 对象
//     * @throws Exception 如果处理过程中发生异常
//     */
//    public abstract void handle(ParquetMessage message) throws Exception;
//
//    /**
//     * 保存 FileResolveLog 对象。由子类实现具体逻辑。
//     *
//     * @param fileResolveLog 要保存的 FileResolveLog 对象
//     * @throws Exception 如果保存过程中发生异常
//     */
//    public abstract void save(FileResolveLog fileResolveLog) throws Exception;
//
//
//    /**
//     * 检查文件是否已经成功解析
//     *
//     * @param fileResolveLog 包含处理信息的 ParquetMessage 对象
//     * @throws Exception 如果保存过程中发生异常
//     */
//    public abstract FileResolveLog check(FileResolveLog fileResolveLog) throws Exception;
//
//}
//
